(function () {
    "use strict";

    angular.module("core").filter('abs', filter);

    function filter() {
        return function (val) {
            return Math.abs(val);
        };
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('notes', filter);

    function filter() {
        return function (val) {
            return val?.replace(/\r/g, '<br \/>');
        };
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('customfilter', filter);

    function filter() {
        return function (items, search) {
            if (!search) {
                return items;
            }
            
 
            return items.filter(function (item, index, array) {
                //busca por codigo de barra ou através do codigo do produto
                if (!angular.isUndefined(item.Produto.CodigosBarra) &&
                    !angular.isUndefined(item.Produto.CodigosBarra[0]) &&
                    item.Produto.CodigosBarra !== null &&
                    item.Produto.CodigosBarra[0] !== null &&
                    item.Produto.CodigosBarra[0].Codigo !== '') {
                    return item.Produto.CodigosBarra[0].Codigo.toUpperCase() === search.toUpperCase();
                } else {
                    return item.Produto.Codigo.toUpperCase() === search.toUpperCase();
                }
            });
        };
    }

})();

(function () {
    "user strict";

    angular.module("core").filter('replace', filter);

    function filter() {
        return function (input, from, to) {
            input = input || '';
            from = from || '';
            to = to || '';
            return input.replace(new RegExp(from, 'g'), to);
        }
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('null', filter);

    function filter() {
        return function (val, replacement) {
            return val === null ? replacement : val;
        }
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('empty', filter);

    function filter() {
        return function (val, replacement) {
            return !val || val == '0,00' || val == 'R$ 0,00' ? replacement : val;
        }
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('sumBy', filter);

    function filter() {
        return function (data, key) {
            if (typeof (data) === 'undefined' || typeof (key) === 'undefined') {
                return 0;
            }
            var sum = 0;
            for (var i = data.length - 1; i >= 0; i--) {
                sum += data[i][key];
            }
            return sum;
        }
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('firstLetterUppercase', filter);

    function filter() {
        return function (val) {
            return val.charAt(0).toUpperCase()
        }
    }

})();

(function () {
    "use strict";

    angular.module("core").filter('trustedAsResourceUrl', filter);

    filter.$inject = ['$sce'];

    function filter($sce) {
        return function (val) {
            console.log($sce.trustAsResourceUrl(val));
            return $sce.trustAsResourceUrl(val);
        };
    }

})();
